home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 August: Tool Chest / Dev.CD Aug 98 TC.toast / Sample Code / Processes / MP Threaded Sort / Sort / SortPictsApp.cp < prev    next >
Encoding:
Text File  |  1997-03-13  |  3.4 KB  |  207 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        App.cp
  3.  
  4.     Contains:    Boilerplate application-specific code.
  5.                 
  6.     Written by: Dave Falkenburg
  7.  
  8.     Copyright:    © 1993-94 by Dave Falkenburg, all rights reserved.
  9.  
  10.     Change History (most recent first):
  11.      
  12.  */
  13.  
  14. #include "Sprocket.h"
  15. #include "SortPicts.h"
  16.  
  17. #include <Devices.h>
  18. #include <Resources.h>
  19. extern    MenuHandle        gPicturesMenu;
  20. extern short            gSortAlgorithm;
  21. extern Boolean            gUseCoplandTasks;
  22.  
  23. //    Function Prototypes:
  24.  
  25. void    AboutBox(void);
  26. void    OpenExistingDocument(void);
  27.  
  28. extern    unsigned long    gBackgroundSleepQuantum;
  29.  
  30. OSErr
  31. SetupApplication(void)
  32.     {
  33.     //    we pick a greedy sleep time because we suck
  34.     
  35.     gBackgroundSleepQuantum = 15;
  36.     
  37.     InitCursor();
  38.     return    noErr;
  39.     }
  40.  
  41. void
  42. TearDownApplication(void)
  43.     {
  44.     //    Not much to do yet.
  45.     }
  46.  
  47.  
  48. //short    gCurrentIterationsItem = 1;
  49. //long    gIterationsConstants[] = { 250, 500, 1000, 
  50. //                            2000, 5000, 10000, 50000, 100000};
  51.                             
  52. void
  53. HandleMenu(TWindow * /* topWindowObj */, long menuCode)
  54.     {
  55.     short    menu = (short) (menuCode >> 16);
  56.     short    item = (short) (menuCode & 0xffff);
  57.     MenuHandle    sortAlgorithmMenu;
  58.     Str255    deskAccName;
  59.     SortPicts        *newWindow;
  60.     Str255    menuSelection;
  61.     
  62.     switch (menu)
  63.         {
  64.         case    mApple:
  65.             switch (item)
  66.                 {
  67.                 case    iAbout:
  68.                     AboutBox();
  69.                     break;
  70.                     
  71.                 default:
  72.                     GetMenuItemText(GetMenuHandle(mApple),item,deskAccName);
  73.                     (void) OpenDeskAcc(deskAccName);
  74.                     break;
  75.                 }
  76.             break;
  77.             
  78.         case    mSprocketFileMenu:
  79.             switch (item)
  80.                 {
  81.                 case    iNewSortingPict:
  82.                     CreateNewDocument();
  83.                     break;
  84.                 
  85.                 case    iCloseWindow:
  86.                     HandleClose(FrontNonFloatingWindow());
  87.                     break;
  88.                     
  89.                 case    iQuitSortPicts:
  90.                     gDone = true;
  91.                     break;
  92.                     
  93.                 default:
  94.                     break;
  95.                 }
  96.             break;
  97.         
  98.         case    mSortAlgorithm:
  99.             sortAlgorithmMenu = GetMenuHandle( mSortAlgorithm );
  100.             if( sortAlgorithmMenu )
  101.             {
  102.                 if ( item == iUseCoplandTasks )
  103.                 {
  104.                     gUseCoplandTasks = gUseCoplandTasks ? false : true;
  105.                     CheckItem( sortAlgorithmMenu, iUseCoplandTasks, gUseCoplandTasks );
  106.                 }
  107.                 else
  108.                 {
  109.                     CheckItem( sortAlgorithmMenu, gSortAlgorithm, false );
  110.                     CheckItem( sortAlgorithmMenu, item, true );
  111.                     gSortAlgorithm = item;
  112.                 }
  113.             }
  114.             break;
  115.         
  116.  
  117.         
  118.         case    mPictureMenu:
  119.             GetMenuItemText( gPicturesMenu, item, menuSelection);
  120.             if( menuSelection[0] == 0)
  121.                 break;
  122.             
  123.             newWindow = new SortPicts( menuSelection);
  124.             break;
  125.             
  126.         default:
  127.             break;
  128.         }
  129.         
  130.     HiliteMenu(0);
  131.     }
  132.  
  133.  
  134. void
  135. AboutBox(void)
  136.     {
  137.     Handle            versionHandle;
  138.     StringPtr        nullStr = (StringPtr) "\p";
  139.     StringPtr        shortVersionString = nullStr;
  140.     short            itemHit;
  141.     
  142.     versionHandle = GetResource('vers',1);
  143.     if (versionHandle)
  144.         shortVersionString = (StringPtr) ((char *) *versionHandle + 6);
  145.     ParamText(shortVersionString,nullStr,nullStr,nullStr);
  146.     ReleaseResource(versionHandle);
  147.  
  148. #ifndef    powerc
  149.     itemHit = StandardAlert(kAboutBoxFor68K);
  150. #else
  151.     itemHit = StandardAlert(kAboutBoxForPowerPC);
  152. #endif
  153.  
  154.     if (itemHit == iCreditsButton) {
  155.         StandardAlert(kCreditsBox);
  156.     }
  157. }
  158.  
  159.  
  160. void
  161. WriteLocalClipboardToScrap(void)
  162.     {
  163.     }
  164.  
  165.  
  166. void
  167. ReadLocalClipboardFromScrap(void)
  168.     {
  169.     }
  170.  
  171.  
  172. OSErr
  173. CreateNewDocument(void)
  174.     {
  175.     SortPicts    *aNewWindow;
  176.     
  177.     aNewWindow = new SortPicts;
  178.         
  179.     if (aNewWindow)
  180.         return noErr;
  181.     else
  182.         {
  183.         return memFullErr;
  184.         }
  185.     }
  186.  
  187.  
  188. OSErr
  189. OpenDocument(LetterDescriptor * /* theDocument */, void * /*unused*/)
  190.     {
  191.     return CreateNewDocument();    //    cheat for now…
  192.     }
  193.  
  194.  
  195. OSErr
  196. PrintDocument(LetterDescriptor * /* theDocument */, void * /*unused*/)
  197.     {
  198.     return noErr;
  199.     }
  200.  
  201.  
  202. Boolean
  203. QuitApplication(void)
  204.     {
  205.     return true;
  206.     }
  207.